﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Controller;

namespace GUI
{
    public partial class Rapport : P_DesignParentForm
    {
        public Rapport()
        {
            InitializeComponent();
        }

        private void Rapport_Load(object sender, EventArgs e)
        {
            RapportcomboBox.SelectedIndex = 0;
            Vaerksted v = Vaerksted.GetInstance();
            v.Rapportering();
        }

        private void HentRapportbutton_Click(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            
            
            switch (RapportcomboBox.SelectedIndex)
            {
                case 0:
                    v.HentKundeSidsteBesøgsRapport(RapportdateTimePicker.Value);
                    VisKundeScooterRapport();
                    break;

                case 1:
                    v.Kkatalog.HentKundeListe();
                    VisKundeListe();
                    Gembutton.Visible = false;
                    break;

                case 2:
                    v.Kkatalog.HentScootereMedEjer();
                    VisScooterMedEjerListe();
                    break;
                

                default:
                    MessageBox.Show("Ikke implementeret");
                    break;
            }
        }

        private void VisKundeScooterRapport()
        {
            Vaerksted v = Vaerksted.GetInstance();

            var liste = from s in v.Kkatalog.Kunder select new {Kunde = s.Fornavn+" "+s.Efternavn,Adresse = s.Adresse,Postnr = s.Postnr,By = s.Bynavn, RegNr = s.Scootere.ElementAt(0).Key,Mærke = s.Scootere.ElementAt(0).Value.Certifikat.CertNavn,Model = s.Scootere.ElementAt(0).Value.Model, SidsteService = s.Scootere.ElementAt(0).Value.SidsteService };

            RapportdataGridView.DataSource = liste.ToList();
            

        }

        private void Gembutton_Click(object sender, EventArgs e)
        {
            if (RapportdataGridView.RowCount == 0)
                MessageBox.Show("Du skal først vælge en rapport, som du vil gemme");
            else
            {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.Filter = "txt files (*.txt)|*.txt";
                saveFileDialog1.FilterIndex = 0;
                saveFileDialog1.ShowDialog();
                string sti = saveFileDialog1.FileName;

                Vaerksted v = Vaerksted.GetInstance();
                v.GemKundeSidsteBesøgsRapport(sti,RapportdateTimePicker.Value);
                
            }
            
        }

        private void Lukbutton_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void RapportcomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (RapportcomboBox.SelectedIndex > 0)
                RapportdateTimePicker.Enabled = false;
        }

        private void VisKundeListe()
        {
            Vaerksted v = Vaerksted.GetInstance();

            var liste = from k in v.Kkatalog.Kunder select new {Knr = k.Knr, Efternavn = k.Efternavn, Fornavn = k.Fornavn, Adresse = k.Adresse, Postnr = k.Postnr, By = k.Bynavn, Tlf = k.TlfNr, Mail = k.Mail };

            RapportdataGridView.DataSource = liste.ToList();
        }

        private void VisScooterMedEjerListe()
        {
            Vaerksted v = Vaerksted.GetInstance();

            var liste = from k in v.Kkatalog.Kunder select new { Mærke = k.Scootere.ElementAt(0).Value.Certifikat.CertNavn, Model = k.Scootere.ElementAt(0).Value.Model, Regnr = k.Scootere.ElementAt(0).Value.RegNr, Ejer = k.Fornavn + " " + k.Efternavn, Adresse = k.Adresse, Postnr = k.Postnr, By = k.Bynavn};

            RapportdataGridView.DataSource = liste.ToList();
            
        }

       
    }
}
